package com.project.nimsen.util;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.aliyun.openservices.oss.OSSClient;
import com.aliyun.openservices.oss.model.OSSObject;
import com.project.jdbc.utils.ConfigPropUtil;

public class NimsenUtil {
	static String configproperties="config.properties";
	/**
	 * 把一个数的位数补齐为三位，如number是2没返回'002'的字符串
	 * */
	public static String threeDigit(Integer number){
		StringBuffer sbf = new StringBuffer();
		if(number<10)
			sbf.append("00");
		else if(number<100)
			sbf.append("0");
		sbf.append(number);
		return sbf.toString();
	}
	/**
	 * 把字符串以","号分隔成一个集合
	 * */
	public static List<String> convertStr2List(String str){
		return convertStr2List(str, ",");
	}
	/**
	 * 把一个字符串转以splitCha为分隔符转换成一个集合
	 * */
	public static List<String> convertStr2List(String str, String splitCha){
		List<String> checkeds = new ArrayList<String>();
		if(StringUtils.isBlank(str))
			return checkeds;
		String [] strs = StringUtils.split(str, splitCha);
		for(int i=0;i<strs.length;i++)
			checkeds.add(strs[i]);
		return checkeds;
	}
	/**
	 * 所对像转换成String
	 * */
	public static String obj2String(Object result){
		if (result==null) {
			return null;
		}
		return result.toString().trim();
	}
	/**
	 * 返回一个OSS存储的客户端
	 * */
	public static OSSClient getOSSClient(){
		ConfigPropUtil pro = new ConfigPropUtil(configproperties);
		//得到oos存储r的Access Key里的id与secret
		String accessKeyId = pro.getProperty("ooskey");
		String accessKeySecret = pro.getProperty("oossecret");
		
		// 初始化一个OSSClient
		return new OSSClient("http://"+getOOSInsertUrl(), accessKeyId, accessKeySecret);
	}
	/**
	 * 得到这个程序存储的bucketname
	 * */
	public static String getOSSBucketName(){
		ConfigPropUtil pro = new ConfigPropUtil(configproperties);
		return pro.getProperty("oosbucketname");
	}
	/**
	 * 得到向阿里云存储OSS的流对像
	 * */
	public static InputStream getOSSObj(String key)throws Exception{
		OSSClient client = getOSSClient();
		// 获取Object，返回结果为OSSObject对象
	    OSSObject object = client.getObject(getOSSBucketName(), key);
	    // 获取Object的输入流
	    InputStream objectContent = object.getObjectContent();
	    return objectContent;
	}
	//得到存储的内网地址
	public static String getOOSInsertUrl(){
		ConfigPropUtil pro = new ConfigPropUtil(configproperties);
		return pro.getProperty("oosinserturl");
	}
	public static String getMemoryType(){
		ConfigPropUtil pro = new ConfigPropUtil(configproperties);
		return pro.getProperty("memorytype");
	}
}
